#region Imports

using System;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;

#endregion

namespace IEC.ColumnOrdering.SP2007.Deployment
{

    /// <summary>
    /// Receives Feature management requests for sites.
    /// </summary>
    [SharePointPermission(SecurityAction.InheritanceDemand, ObjectModel = true)]
    [SharePointPermission(SecurityAction.LinkDemand, ObjectModel = true)]
    public sealed class SiteFeatureReceiver : ApplicationFeatureReceiver
    {

        #region Methods - Instance Member

        #region Methods - Instance Member - SPFeatureReceiver Members

        /// <summary>
        /// Occurs after a Feature is activated.
        /// </summary>
        /// <param name="properties">
        /// An <see cref="SPFeatureReceiverProperties"/> object that represents 
        /// the properties of the event.
        /// </param>
        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            //// FeatureElementHandler featureElementHandler = null;

            //// TODO: setup mapping lists
            ////featureElementHandler = new MappingListFeatureElementHandler();
            ////this.CreateFeatureElement(properties, featureElementHandler);
        }

        /// <summary>
        /// Occurs after a Feature is deactivated.
        /// </summary>
        /// <param name="properties">
        /// An <see cref="SPFeatureReceiverProperties"/> object that represents 
        /// the properties of the event.
        /// </param>
        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            //// FeatureElementHandler featureElementHandler = null;

            //// TODO: remove mapping lists
            ////featureElementHandler = new MappingListFeatureElementHandler();
            ////this.RemoveFeatureElement(properties, featureElementHandler);
        }

        /// <summary>
        /// Occurs after a Feature is installed.
        /// </summary>
        /// <param name="properties">
        /// An <see cref="SPFeatureReceiverProperties"/> object that represents 
        /// the properties of the event.
        /// </param>
        public override void FeatureInstalled(SPFeatureReceiverProperties properties)
        {

        }

        /// <summary>
        /// Occurs after a Feature is uninstalled.
        /// </summary>
        /// <param name="properties">
        /// An <see cref="SPFeatureReceiverProperties"/> object that represents 
        /// the properties of the event.
        /// </param>
        public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
        {

        }

        #endregion

        #endregion

    }

}
